package com.rykj.energy.database.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.rykj.energy.database.pojo.BasicMeter;
import com.rykj.energy.database.pojo.BasicMeterData;
import com.rykj.energy.database.pojo.BusinessRotation;
import com.rykj.energy.database.pojo.MessageResult;
import com.rykj.energy.database.pojo.vo.MeterInfoVo;

import java.util.List;
import java.util.Map;

public interface IMeterService {

    BasicMeter findOneById(Integer meterId);

    void saveMeter(BasicMeter basicMeter);

    void updateMeter(BasicMeter basicMeter);

    void deleteMeters(Integer meterId);

    IPage<MeterInfoVo> getMeterPages(Integer pageNum, Integer pageSize, Integer orgId, String searchName, String meterType);

    List<BasicMeter> getShowPageMeters(Integer orgId);

    List<BusinessRotation> getRotationByUserId(Integer userId);

    IPage<BusinessRotation> getRotationPageByUserId(Integer pageNum, Integer pageSize, Integer orgId, Integer userId);

    void saveRotationMeters(Integer userId, List<BusinessRotation> rotations);

    void updateRotationMeters(List<BusinessRotation> rotations);

    void deleteExecutorGroups(String rotationIds);

    List<BasicMeterData> getMeterDatesByMeterId(Integer meterId);

    IPage<BasicMeter> getNotRotationMeters(Integer pageNum, Integer pageSize, Integer orgId, String searchName, String meterType, Integer userId);

    BasicMeterData findMeterDataById(Integer resultDetailId);


    IPage<BasicMeter> getMeterForTasks(Integer pageNum, Integer pageSize, Integer orgId, String searchName, String meterType);

    String cutImgByRectSeat(String imgUrl, String distType, String rectSeat);

    List<BasicMeter> getMetersByCameraId(Integer id);

    List<Map<String, Object>> getAlarmValues(Integer taskId, Integer cameraId);
}
